package traveldreamEJB;

import java.io.Serializable;

import javax.persistence.*;

import supportClass.UtenteDTO;

import java.util.List;


/**
 * The persistent class for the utente database table.
 * 
 */
@Entity
@Table(name="utente")
@NamedQueries({
@NamedQuery(name="Utente.findAll", query="SELECT u FROM Utente u"),
@NamedQuery(name="Utente.findUtenteByEmail", query="SELECT u FROM Utente u WHERE u.email=:email")
})
public class Utente implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(unique=true, nullable=false, length=45)
	private String email;

	@Column(nullable=false, length=45)
	private String citta;

	@Column(nullable=false, length=45)
	private String cognome;

	@Column(nullable=false, length=45)
	private String nome;

	@Column(nullable=false, length=45)
	private String telefono;

	@Column(nullable=false, length=45)
	private String via;

	//bi-directional one-to-one association to Login
	@OneToOne(mappedBy="utente")
	private Login login;

	//bi-directional many-to-one association to Pagamento
	@OneToMany(mappedBy="utente")
	private List<Pagamento> pagamentos;

	//bi-directional many-to-one association to Viaggio
	@OneToMany(mappedBy="utente")
	private List<Viaggio> viaggios;

	public Utente() {
	}
	
	public Utente(UtenteDTO utenteDTO)
	{
		this.email=utenteDTO.getEmail();
		this.citta=utenteDTO.getCitta();
		this.cognome=utenteDTO.getCognome();
		this.nome=utenteDTO.getNome();
		this.via=utenteDTO.getVia();
		this.telefono=utenteDTO.getTelefono();
	}

	public String getEmail() {
		return this.email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getCitta() {
		return this.citta;
	}

	public void setCitta(String citta) {
		this.citta = citta;
	}

	public String getCognome() {
		return this.cognome;
	}

	public void setCognome(String cognome) {
		this.cognome = cognome;
	}

	public String getNome() {
		return this.nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getTelefono() {
		return this.telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	public String getVia() {
		return this.via;
	}

	public void setVia(String via) {
		this.via = via;
	}

	public Login getLogin() {
		return this.login;
	}

	public void setLogin(Login login) {
		this.login = login;
	}

	public List<Pagamento> getPagamentos() {
		return this.pagamentos;
	}

	public void setPagamentos(List<Pagamento> pagamentos) {
		this.pagamentos = pagamentos;
	}

	public Pagamento addPagamento(Pagamento pagamento) {
		getPagamentos().add(pagamento);
		pagamento.setUtente(this);

		return pagamento;
	}

	public Pagamento removePagamento(Pagamento pagamento) {
		getPagamentos().remove(pagamento);
		pagamento.setUtente(null);

		return pagamento;
	}

	public List<Viaggio> getViaggios() {
		return this.viaggios;
	}

	public void setViaggios(List<Viaggio> viaggios) {
		this.viaggios = viaggios;
	}

	public Viaggio addViaggio(Viaggio viaggio) {
		getViaggios().add(viaggio);
		viaggio.setUtente(this);

		return viaggio;
	}

	public Viaggio removeViaggio(Viaggio viaggio) {
		getViaggios().remove(viaggio);
		viaggio.setUtente(null);

		return viaggio;
	}

}